package com.yc.cloud.api.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 发布状态枚举
 *
 * @author kinggu
 * @since 2025-01-15
 */
@Getter
@AllArgsConstructor
public enum PublishStatusEnum {

    /**
     * 未发布
     */
    UNPUBLISHED(0, "未发布"),

    /**
     * 已发布
     */
    PUBLISHED(1, "已发布");

    /**
     * 状态值
     */
    private final Integer value;

    /**
     * 状态描述
     */
    private final String description;

    /**
     * 根据值获取枚举
     *
     * @param value 状态值
     * @return 对应的枚举，如果不存在则返回null
     */
    public static PublishStatusEnum getByValue(Integer value) {
        if (value == null) {
            return null;
        }
        for (PublishStatusEnum status : values()) {
            if (status.getValue().equals(value)) {
                return status;
            }
        }
        return null;
    }

    /**
     * 判断是否为已发布状态
     *
     * @param value 状态值
     * @return true-已发布，false-未发布
     */
    public static boolean isPublished(Integer value) {
        return PUBLISHED.getValue().equals(value);
    }

    /**
     * 判断是否为未发布状态
     *
     * @param value 状态值
     * @return true-未发布，false-已发布
     */
    public static boolean isUnpublished(Integer value) {
        return UNPUBLISHED.getValue().equals(value);
    }
} 